// Problem 050: Consecutive prime sum
// The prime 41, can be written as the sum of six consecutive primes:
// 41 = 2 + 3 + 5 + 7 + 11 + 13
// This is the longest sum of consecutive primes that adds to a prime below one-hundred.
// The longest sum of consecutive primes below one-thousand that adds to a prime, contains 21 terms, and is equal to 953.
// Which prime, below one-million, can be written as the sum of the most consecutive primes?

package main

import (
	"fmt"
	"projecteuler/euler"
)

func p050() {
	euler.FillPrime(1000000)
	pl, max, ans := len(euler.PrimeList), 21, 953
	for i, v := range euler.PrimeList {
		sum, item := v, 1
		for j := i + 1; sum < 1000000 && j < pl; j++ {
			sum += euler.PrimeList[j]
			item++
			if item <= max {
				continue
			} else if euler.IsPrime(sum) && item > max {
				max, ans = item, sum
			}
		}
	}
	fmt.Println("Problem 050:", ans)
}
